package nio;

import java.io.File;
import java.io.FileInputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

/**
 * 应用实例2-本地文件读数据
 *
 * @author chenyuan
 * @date 2020/11/1 16:08
 */
public class FileChannel02 {
	public static void main(String[] args) throws Exception {
		// 1. 通过 输入流 中的 fileChannel 对象把数据读出
		// 创建输入流
		File file = new File("D:\\file01.txt");
		FileInputStream inputStream = new FileInputStream(file);

		// 通过 输入流 获得对应的 FileChannel
		FileChannel fileChannel = inputStream.getChannel();

		// 2. 把 输入流 的数据传入 Buffer
		// 创建缓冲区
		ByteBuffer buffer = ByteBuffer.allocate((int) file.length());

		// 把数据从 fileChannel 读入到缓冲区
		fileChannel.read(buffer);

		// 3. 把数据从 Buffer 中取出
		// 将缓冲区的字节转换成字符串
		String s = new String(buffer.array());

		// 4. 显示数据
		System.out.println(s);
	}
}
